package com.zbest.zpay.acctrans.service.facade;

import com.zbest.zpay.acctrans.service.model.CommonResponse;
import com.zbest.zpay.acctrans.service.model.UserDepositRequest;
import com.zbest.zpay.acctrans.service.model.UserHoldDepositRequest;
import com.zbest.zpay.acctrans.service.model.UserHoldRequest;
import com.zbest.zpay.acctrans.service.model.UserUnHoldPlatformFeeRequest;
import com.zbest.zpay.acctrans.service.model.UserUnHoldRequest;
import com.zbest.zpay.acctrans.service.model.UserUnHoldTransferRequest;
import com.zbest.zpay.acctrans.service.model.UserUnHoldWithdrawRequest;

public interface AcctransOperationService {

    /**
     * 个人冻结
     *
     * @param userHoldRequest
     * @return
     */
    public CommonResponse userHold(UserHoldRequest userHoldRequest);

    /**
     * 个人存入
     *
     * @param userDepositRequest
     * @return
     */
    public CommonResponse userDeposit(UserDepositRequest userDepositRequest);

    /**
     * 个人存入并冻结
     *
     * @param userHoldDepositRequest
     * @return
     */
    public CommonResponse userHoldDeposit(UserHoldDepositRequest userHoldDepositRequest);

    /**
     * 个人解冻
     *
     * @param userUnHoldRequest
     * @return
     */
    public CommonResponse userUnHold(UserUnHoldRequest userUnHoldRequest);

    /**
     * 私对私解冻转账
     *
     * @param userUnHoldTransferRequest
     * @return
     */
    public CommonResponse userUnHoldTransfer(UserUnHoldTransferRequest userUnHoldTransferRequest);

    /**
     * 个人解冻并支取
     *
     * @param userUnHoldWithdrawRequest
     * @return
     */
    public CommonResponse userUnHoldWithdraw(UserUnHoldWithdrawRequest userUnHoldWithdrawRequest);

    /**
     * 个人平台服务费用
     * @param userUnHoldPlatformFeeRequest
     * @return
     */
    public CommonResponse userUnHoldPlatformFee(UserUnHoldPlatformFeeRequest userUnHoldPlatformFeeRequest);


}
